FIG. 1 is a diagram of an illustrative system 100 for relaying data over a network according to one embodiment of the present invention. As shown in the figure, system 100 includes a network relay device 102 communicating with another network relay device 104 over a network 106. Network 106 may be a packet-switched network and/or a circuit-switched network. For example, a packet-switched network may comprise a local area network (LAN), a wireless local area network (WLAN), a wide area network (WAN), a network of networks, etc. One commonly-known packet-switched network is the Internet. A circuit-switched network may comprise a simple wired or wireless connection, a modem “dial-up” connection, a digital subscriber line (DSL), etc. Use of network 106 may also involve layers of network communications. For example, one configuration of layers of network communication may involve a physical layer, a data-link layer, a network layer, a transport layer, a session layer, a presentation layer, an application layer, etc. Regardless of the specific implementation of network 106, network relay device 102 and network relay device 104 are capable of forwarding data to one another over network 106. Further, in the present embodiment of the invention, network relay device 102 and network relay device 104 are capable of bi-directional communication.
As shown in FIG. 1, system 100 further includes one or more data communication devices such as 110, 112, and 114 coupled to network relay device 102. System 100 also includes one or more data communication devices such as 120, 122, and 124 coupled to network relay devices 104. These data communication devices may be different types of data equipment, such as telephones, fax machines, text messaging devices, etc. The illustrative arrangement shown in FIG. 1 allows numerous end-to-end communication links to be established. Each communication link may be bi-directional in nature and be established between two different data communication devices.
Just as an example, a first user at telephone 112 may establish a “call” with a second user at telephone 122. The following briefly describes communication of the “call” in one direction. The first user's voice may be received at a receiver at telephone 112, converted into digital data, and sent to network relay device 102. This data, which represents the first caller's voice, may be forwarded from network relay device 102 to network relay device 104. The forwarded data may then be sent to telephone 122, reconstructed into sound, and outputted at telephone 122 to be heard by the second user. The conversion of voice signals into digital data format, and vice versa, may be implemented using conventional techniques known to one of skill in the art. Also, known techniques for voice data compression, encoding, encryption, and other processing may be implemented.
Communication of the “call” in the other direction operates in a similar manner. That is, the voice of the second caller is received at telephone 122, data representing the second caller's voice is forwarded from network relay device 104 to network relay device 102, and the corresponding signal is sent to telephone 112. Finally, the second caller's voice is reconstructed into sound that is output at telephone 112. In certain embodiments, a “call” such as that described above is established over network 106 that is implemented as an IP network, and the “call” may be referred to as a voice-over-IP (VoIP) call. In one specific embodiment, the call may be a secure voice call.
Different types of data transfer modes may be implemented by equipment such as data communication devices 110, 112, 114, 120, 122, and 124. Typically, a data transfer mode relates to a particular set of conventions that devices follow in communicating data with one another. Such data transfer modes may correspond to standard communication interfaces. Examples of data transfer modes include synchronous modes and asynchronous modes.
Generally speaking, a synchronous mode utilizes both data signals and clock signals. For example, a data signal may carry a data waveform representing the logical ones and zeros of the data being transferred. A corresponding clock signal may provide a clock waveform that provides the timing for deciding the appropriate moments in time to sample the data waveform, in order to obtain the data. Different manners of implementing a data signal and a corresponding clock signal may be used. Just as a simple example, a data signal may be sampled on every rising edge of a corresponding clock signal. Other techniques and details for implementing data signals and clock signals are well-known to one of skill in the art.
By contrast, an asynchronous mode typically utilizes data signals, but not clock signals. For example, a data signal may carry a data waveform representing the logical ones and zeros that of the data being transferred. In addition to the actual data that represents, for instance, a user's voice, an asynchronous interface may also insert additional data, referred to as “synchronization characters” into the transmission to help maintain the structure of data within the transmission. For example, an asynchronous interface may organize original data that is to be transmitted into “frames.” A frame may be of a fixed size, such as 8 bits long. Synchronization characters may then be inserted to properly demarcate the beginning and end of frames. For instance, a “start bit” may be inserted at the beginning of each frame. Also, a “stop bit” may be inserted at the end of each frame. In addition, when no data is available to be transmitted, a sufficient number of “idle bits” may be inserted between valid frames of data.
One well-known example of an asynchronous interface standard is the Comité Consultatif International Téléphonique et Télégraphique (CCITT), or Telecommunication Standardization Sector of the International Telecommunications Union (ITU), Recommendation V.14 standard (“V.14 standard”). According to a generally accepted V.14 standard, asynchronous data transmission may be implemented by organizing data into frames, and inserting a “start bit” having a value of “1” before each frame, inserting a “stop bit” having a value of “0” after each frame, and inserting one or more “idle bits” having values of “1” between frames when no data is available to be transmitted. Specifically, the “idle bits” may be inserted after the “stop bit” of a particular frame and before the “start bit” of the next frame.
The transfer of data between a data communication device such as device 112 and a network relay device such as device 102, depicted in FIG. 1, may not necessarily involve the actual data signals and/or clock signals mentioned above. Nevertheless, the data that is transferred between such devices may include synchronization characters, if an asynchronous mode is utilized at some point in the path of transmission.
For example, as shown in FIG. 1, data communication device 112 and network relay device 102 communicate by sending modulated signals to one another. Various modulation schemes such as amplitude modulation, phase modulation, frequency modulation, and others may be adopted as is well-known to one of skill in the art. Such modulation schemes may utilize “symbols” that may each represent one or more bits. The number of bits represented by each symbol depends on the modulation scheme used. For instance, if a quadrature phase shift keying (QPSK) modulation scheme is used, or if a quadrature amplitude modulation (QAM) scheme is used, four bits would be represented by each symbol. While such modulated communications may not necessarily involve asynchronous or synchronous interface signals such as separate data signals and/or clock signals, the data represented by the communicated symbols may include synchronization characters that are present as result of the operation of an asynchronous data transfer mode by a data communication device.
Thus, if a data communication device 112 is operating in asynchronous mode, the modulated symbols that data communication device 112 sends to a network relay device 102 may include synchronization characters such as start bits, stop bits, and idle bits. Data communication device such as device 122 operating in asynchronous mode at the other end of the communication link may also be expecting such synchronization characters. In typical prior art systems, network relay device 102 would simply forward actual data, along with the synchronization characters, to network relay device 104. Network relay device 104 would then send the actual data, along with the synchronization characters, to data communication device 122. Again, this may be done by using modulated communications as described above.
As demands on network bandwidth increase, there is an ever greater need to improve the efficiency of data transmission over paths such as network 106. If a system such as system 100 can be capable of reducing the bandwidth requirements of data forwarded over network 106, efficiency can be correspondingly improved. However, prior art systems have not adequately addressed the reduction of bandwidth requirements for data such as that involved in the operation of an asynchronous data transfer mode. Thus, there is a significant need for workable techniques that allow more efficient transmission of data over networks.